#ifndef EVALUATIONFNS_H
#define EVALUATIONFNS_H
#ifdef USE_HEURISTIC_SELECTION_LIBRARY
#include "moveHeuristicSelection.h"
#endif

int evaluate(int **grid, int sqLen, int grLen, int *rowScores, int *colScores, int first);
int reEvaluate(int **grid, int *rowScores, int *colScores, int grLen, int r1, int r2, int c1, 
			   int c2, int &r1Sc, int &r2Sc, int &c1Sc, int &c2Sc, int first);
void doMove(int **grid, bool **fixed, int grLen, int sqLen, int &r1, int &r2, int &c1, int &c2
#ifdef USE_HEURISTIC_SELECTION_LIBRARY
    , MoveSelector& mhs
#endif
    );
void undoMove(int **grid, int *rowScores, int *colScores, int grLen, int r1, int r2,
			  int c1, int c2, int r1Sc, int r2Sc, int c1Sc, int c2Sc);

#endif

